любое слово - проверка, есть ли это слово в строке.
^ - начало строки (например: ^Привет - cлово "Привет" стоит в начале строки).
$ - конец строки (например: Пока$ - cлово "Пока" стоит в конце строки).
\b - начало и конец слова (например: \bPy - cлова, начинающиеся с "Py"; py\b - Слова, заканчивающиеся на "py").
| - ИЛИ (например: Привет|Пока - cлово "Привет" или "Пока" есть в строке (или оба сразу)).
[ ... ] - перечисление символов (любой символ из скобок) (например: [.,!?] - указывает на любой символ пунктуации).
[0-9] - одна любая цифр от 0 до 9.
[a-z] - одна любая буква от "a" до "z".
[a-zA-Z] - одна любая буква от "a" до "z" в нижнем или верхнем регистре.
[0-9a-z] - одна любая цифр от 0 до 9 или одна любая буква от "a" до "z".
[0-9a-z!#] - одна любая цифр от 0 до 9, или одна любая буква от "a" до "z", или "!", или "#".
^ в [] - будет означать отрицание:
[^0-9] - один любой символ, кроме цифр от 0 до 9.
[^0-9a-z] - один любой символ, кроме цифр от 0 до 9 и букв от "a" до "z".
\b[^ABC] - слово, которое начинается с любой буквы, кроме "A", "B", "C".
[0-9] - одна любая цифра.
[0-9]{3} - три любых цифры подряд.
[0-9]{3,5} - от трёх до пяти любых цифр подряд.
ВМЕСТО 3 и 5 могут стоять любые другие цифры.
\d - любая цифра (сокращение от [0-9]).
\D - любая не цифра (сокращение от [^0-9]).
\w - любой алфавитно-цифровой символ или "_" (сокращение от [a-zA-zа-яА-Я0-9_]).
\W - любой не алфавитно-цифровой символ или не "_" (сокращение от [^a-zA-zа-яА-Я0-9_]).
\s - пробельный символ (табуляция и разрыв строки) (сокращение от [ ]).
\S - любой непробельный символ (сокращение от [^ ]).
. - один любой символ.
[0-9]* - от 0 до бесконечности цифр подряд (сокращение от [0-9]{0,}).
[0-9]+ - от 1 до бесконечности цифр подряд (сокращение от [0-9]{1,}).
[0-9]? - от 0 до 1 цифр (сокращение от [0-9]{0,1}).
Специальные символы + * ? { } ( ) \ необходимо экранировать с помощью дополнительно знака \ перед символом.
Группы обозначаются с помощью (), которым с помощью \n или $n можно задать номер (n - любое число или название).
(.*?) - любой текст.
(.+) или (.*) - жадный поиск (до последнего вхождения шаблона).
(.+?) или (.*?) - ленивый поиск (до первого вхождения шаблона).
X(?=Y) - позитивная опережающая проверка - найти X если за ним следует Y.
X(?|Y) - негативная опережающая проверка - найти X если за ним НЕ следует Y.
(?<=Y)X - позитивная ретроспективная проверка - найти X если перед ним стоит Y.
(?<|Y)X - негативная ретроспективная проверка - найти X если перед ним НЕ стоит Y.
^[!/]бот - строка начинается с "!" или "/", а затем идёт слово "бот".
№\d - символ номера, а затем любая цифра.
\+|\-?\d+ - знак плюса или знак минуса появляются от 0 до 1 раза, затем идёт минимум одна цифра.
(\d+)(\s?)(\$|€|₽) - все цены из текста: 1) минимум 1 цифра; 2) 0 или 1 пробел; 3) любой знак валюты.
\d+(\.|,)?\d* - все числа (целые и дробные): 1) минимум 1 цифра; 2) может быть "." или ",", если число дробное; 3) либо будут цифры, если число дробное, либо нет, если целое.
1. Поиск подстроки в строке (search, match).
2. Поиск всех подходящих строк (findall, finditer).
3. Разделение строки на подстроки (split).
4. Замена части строки (sub).
import re
text = "Name: Evgeniy. Birthday: 31 August, 2008"
reg = r"Name: ([a-zA-Z]+)\. Birthday: (\d+) ([a-zA-z]+), (\d+)"
match = re.search(reg, text)
if match:
print(f"Группа 1 - имя: {match.group(1)}")
print(f"Группа 2 - день: {match.group(2)}")
print(f"Группа 3 - месяц: {match.group(3)}")
print(f"Группа 4 - год: {match.group(4)}")
import re
text1 = "my_py1thon3!pass"
match = re.match(r"^[a-zA-Z0-9_\-!?]{8,16}$", text1)
if match:
print(f"Пароль надёжный.")
else:
print("Пароль ненадёжный.")
text2 = "python"
match = re.match(r"^[a-zA-Z0-9_\-!?]{8,16}$", text2)
if match:
print(f"Пароль надёжный.")
else:
print("Пароль ненадёжный.")
import re
text = "150 + 150 = 300"
reg = r"\d+"
replacement = "***"
new_text = re.sub(reg, replacement, text)
print(f"Новая строка: {new_text}")
import re
text = "Python, JavaScript, C#, Pascal"
list_text = re.split(r",", text)
print(f"Список: {list_text}")
import re
text = '''
<div>
<h1>Заголовок 1</h1>
<h2>Заголовок 2</h2>
<p>Параграф</p>
</div>
'''
reg = r"<([a-z0-9]+)>"
tags = re.findall(reg, text)
print(f"Теги: {tags}")